package com.liqi.device.service;

import com.liqi.device.domain.DvGroup;

import java.util.List;
import java.util.Map;

/**
 * 分组Service接口
 * 
 * @author Lwy
 * @date 2022-03-28
 */
public interface IDvGroupService 
{
    /**
     * 查询分组
     * 
     * @param id 分组主键
     * @return 分组
     */
    public DvGroup selectDvGroupById(Long id);

    /**
     * 查询分组列表
     * 
     * @param dvGroup 分组
     * @return 分组集合
     */
    public List<DvGroup> selectDvGroupList(DvGroup dvGroup);
    /**
     * 通过上级id查询分组列表
     *
     * @param parentId 上级id
     * @return 分组集合
     */
    public List<DvGroup> selectDvGroupByParentId(Long parentId);

    //查询多级分组信息
    public Map findDvGroupTreeByPid(Long parentId);

    /**
     * 新增分组
     * 
     * @param dvGroup 分组
     * @return 结果
     */
    public int insertDvGroup(DvGroup dvGroup);

    /**
     * 修改分组
     * 
     * @param dvGroup 分组
     * @return 结果
     */
    public int updateDvGroup(DvGroup dvGroup);

    /**
     * 批量删除分组
     * 
     * @param ids 需要删除的分组主键集合
     * @return 结果
     */
    public int deleteDvGroupByIds(Long[] ids);

    /**
     * 删除分组信息
     * 
     * @param id 分组主键
     * @return 结果
     */
    public int deleteDvGroupById(Long id);
    public int deleteDvGroupByAncestors(Long id);

    /**
     * 查询分组列表 用于投放设备下拉框
     *
     * @param dvGroup 分组
     * @return 分组集合
     */
    public List<DvGroup> selectDvGroupListForDevice(DvGroup dvGroup);

    List<Map<String, String>> getGrouplist(Long regionCode, Long parentCode);
}
